package com.opener.web.push.service.impl;

//import com.cloopen.rest.sdk.CCPRestSmsSDK;
//import com.opener.common.http.HttpResponse;
//import com.opener.common.utils.StringUtils;
//import com.opener.web.push.model.PushApp;
//import com.opener.web.push.model.PushMsgConf;
//import com.opener.web.push.service.PushService;
//import com.opener.web.spring.exception.ArgumentException;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.stereotype.Service;
//
//import java.util.*;

/**
 * Created by baboy on 25/07/2017.
 */
//@Service("smsPushService")
//public class SmsPushService implements PushService {
//    private static Logger logger = LoggerFactory.getLogger(SmsPushService.class);
//
//    public CCPRestSmsSDK getSmsSender(Map appConf) {
//        //初始化SDK
//        CCPRestSmsSDK restAPI = new CCPRestSmsSDK();
//
//        //******************************注释*********************************************
//        //*初始化服务器地址和端口                                                       *
//        //*沙盒环境（用于应用开发调试）：restAPI.init("sandboxapp.cloopen.com", "8883");*
//        //*生产环境（用户应用上线使用）：restAPI.init("app.cloopen.com", "8883");       *
//        //*******************************************************************************
//        restAPI.init((String)appConf.get("host"), (String)appConf.get("port"));
//
//        //******************************注释*********************************************
//        //*初始化主帐号和主帐号令牌,对应官网开发者主账号下的ACCOUNT SID和AUTH TOKEN     *
//        //*ACOUNT SID和AUTH TOKEN在登陆官网后，在“应用-管理控制台”中查看开发者主账号获取*
//        //*参数顺序：第一个参数是ACOUNT SID，第二个参数是AUTH TOKEN。                   *
//        //*******************************************************************************
//        restAPI.setAccount((String)appConf.get("appSid"), (String)appConf.get("appToken"));
//
//
//        //******************************注释*********************************************
//        //*初始化应用ID                                                                 *
//        //*测试开发可使用“测试Demo”的APP ID，正式上线需要使用自己创建的应用的App ID     *
//        //*应用ID的获取：登陆官网，在“应用-应用列表”，点击应用名称，看应用详情获取APP ID*
//        //*******************************************************************************
//        restAPI.setAppId((String)appConf.get("appId"));
//        return restAPI;
//    }
//
//    public HttpResponse sendTplMsg(Map appConf, String mobile, String tempId, String[] args) {
//
//
//        HashMap<String, Object> result = getSmsSender(appConf).sendTemplateSMS(mobile, tempId, args);
//
//        logger.debug("SEND SMS|sp:ronglian|mobile:" + mobile + "|tempId:" + tempId + "|args:" + args + "|" + result);
//        if ("000000".equals(result.get("statusCode"))) {
//            HashMap<String, Object> data = (HashMap<String, Object>) result.get("data");
//            Set<String> keySet = data.keySet();
//            for (String key : keySet) {
//                Object object = data.get(key);
//                logger.debug(key + " = " + object);
//            }
////            try {
////                String ip = SysUtils.getAddress(SysUtils.getCurrentRequest());
////                addIpSendTime(ip);
////
////            }catch (Exception e){
////                e.printStackTrace();
////            }
////            addMobileSendTime(mobile);
//            return HttpResponse.getSuccessResponse();
//        }
//        HttpResponse res = HttpResponse.getFailureResponse();
//        logger.debug("send sms error statusCode=" + result.get("statusCode") + " msg=" + result.get("statusMsg"));
//        res.setMsg(result.get("statusMsg").toString());
//        return res;
//    }
//    @Override
//    public HttpResponse send(PushApp app, PushMsgConf msgConf, Map data, String ip) {
//        HttpResponse ret;
//        Map conf = msgConf.getConf();
//        Map dataMap = new HashMap();
//        if(conf.containsKey("data")){
//            dataMap.putAll( (Map)conf.get("data") );
//        }
//        dataMap.putAll(data);
//        String mobiles = (String)dataMap.get("mobile");
//
//        if (org.apache.commons.lang3.StringUtils.isEmpty(mobiles)){
//            throw new ArgumentException("param.error.desc","mobile");
//        }
//
//        List<String> params = new ArrayList<String>();
//        if (conf.containsKey("keys")){
//            List<String> keys = (ArrayList<String>) conf.get("keys");
//            for (String k :keys){
//                Object ov = dataMap.get(k);
//                String v = "";
//                if(ov != null){
//                    v = StringUtils.formatPlaceholders(ov.toString(), dataMap);
//                }
//                params.add(v);
//            }
//        }
//        String []d =  (String[])params.toArray(new String[params.size()]);
//
//        ret = HttpResponse.getSuccessResponse();
//        try {
//            String[] a = mobiles.split(",");
//            for(String mobile: a){
//                ret = sendTplMsg(app.getConf(), mobile, msgConf.getMsgId(), d);
//            }
//        }catch (Exception e){
//            e.printStackTrace();
//            ret.setMsg(e.getMessage());
//        }
//        return ret;
//    }
//}
